package dao.caminhoneiro;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import tcc.caminhoneiro.R;

import entidade.caminhoneiro.Endereco;
import entidade.caminhoneiro.Frete;
import entidade.caminhoneiro.Lance;
import entidade.caminhoneiro.Produto;
import entidade.caminhoneiro.Produtor;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
import apresentacao.caminhoneiro.Activity_Menu_Principal;
import apresentacao.caminhoneiro.Fragment_Meus_Fretes;


public class AsyncTask_Meus_Fretes extends AsyncTask<Void, Void, String>{
	
	private final String SERVER = "http://nome-produtor.rhcloud.com/caminhoneiro_meus_fretes/";

	private ProgressDialog progress;
	private FragmentActivity context;
	public static List<Frete> fretes;
	
	String
	idFrete, idLance, precoLance, preco, descricao, status, nomeProdutor, telefoneProdutor,
	idProdutor, nomeproduto, pesoproduto, descricaoproduto, especieproduto,  
	cidadeOrigem, estadoOrigem, completoOrigem, 
	cidadeDestino, estadoDestino, completoDestino,
	Cbau, Cbau_frigorifico, Cboiadeiro, Ccacamba, Ccontainer, Cgaiola, Cgrade_baixa, Cgraneleiro, Cmunk, Cprancha, Csider, Csilo, Ctanque, Cso_cavalo, Cmecanico, 
	Vrodotrem, Vbitrem, Vcarreta_ls, Vbi_truck, Vtruck, Vtoco, Vtres_por_quatro, Vvlc;
	
	public AsyncTask_Meus_Fretes(FragmentActivity context) {
		this.context 		= context;
	}
	
	@Override
	protected String doInBackground(Void... params) {
		try {
			PostRequest request = new PostRequest(SERVER);
			
			request.addParam("id", Activity_Menu_Principal.user_id.toString());
			String retorno = request.doPostRequest().readLine();
			
			fretes = new ArrayList<Frete>();
			String numero = "";
			for(int i = 0; i < retorno.length(); i++){
				if(retorno.charAt(i) == ','){
					retorno = retorno.substring(i+1,retorno.length());
					break;
				}else{
					numero = numero + retorno.charAt(i);
				}
			}
			
			numero = numero.replace("(", "");
			numero = numero.replace("L", "");
			String[] split = retorno.split(";");
			
			for (int i = 0; i < Integer.parseInt(numero); i++) {
				int j = 0;
				String [] splitInterno = split[i].split("/");
				idFrete 			= splitInterno[j++];
				idFrete 			= idFrete.replace("'", "");
				idFrete 			= idFrete.replace(" ", "");
				
				preco 				= splitInterno[j++];
				preco 				= preco.replace(" ", "");
				
				descricao 			= splitInterno[j++];
				descricao 			= descricao.replace("'", "");
				
				status 				= splitInterno[j++];
				status 				= status.replace("'", "");
				
				idProdutor		= splitInterno[j++];
				idProdutor		= idProdutor.replace("'", "");				
				
				nomeProdutor		= splitInterno[j++];
				nomeProdutor		= nomeProdutor.replace("'", "");				
				
				telefoneProdutor	= splitInterno[j++];
				telefoneProdutor	= telefoneProdutor.replace("'", "");				
				
				nomeproduto 		= splitInterno[j++];
				nomeproduto 		= nomeproduto.replace("'", "");				
				
				pesoproduto			= splitInterno[j++];				
				
				descricaoproduto	= splitInterno[j++];
				descricaoproduto	= descricaoproduto.replace("'", "");		
				
				especieproduto		= splitInterno[j++];
				especieproduto		= especieproduto.replace("'", "");				
				
				cidadeOrigem 		= splitInterno[j++];
				cidadeOrigem 		= cidadeOrigem.replace("'", "");				
				
				estadoOrigem 		= splitInterno[j++];
				estadoOrigem 		= estadoOrigem.replace("'", "");
				
				completoOrigem		= splitInterno[j++];
				completoOrigem		= completoOrigem.replace("'", "");				
				
				cidadeDestino 		= splitInterno[j++];
				cidadeDestino 		= cidadeDestino.replace("'", "");				
				
				estadoDestino 		= splitInterno[j++];
				estadoDestino		= estadoDestino.replace("'", "");
				
				completoDestino		= splitInterno[j++];
				completoDestino		= completoDestino.replace("'", "");
				
				Cbau 				= splitInterno[j++];
				Cbau 				= Cbau.replace(" ", "");
				
				Cbau_frigorifico 	= splitInterno[j++];
				Cbau_frigorifico 	= Cbau_frigorifico.replace(" ", "");
				
				Cboiadeiro 			= splitInterno[j++];
				Cboiadeiro 			= Cboiadeiro.replace(" ", "");
				
				Ccacamba 			= splitInterno[j++];
				Ccacamba 			= Ccacamba.replace(" ", "");
				
				Ccontainer 			= splitInterno[j++];
				Ccontainer 			= Ccontainer.replace(" ", "");				
				
				Cgaiola 			= splitInterno[j++];
				Cgaiola 			= Cgaiola.replace(" ", "");				
				
				Cgrade_baixa 		= splitInterno[j++];
				Cgrade_baixa 		= Cgrade_baixa.replace(" ", "");				
				
				Cgraneleiro 		= splitInterno[j++];
				Cgraneleiro 		= Cgraneleiro.replace(" ", "");				
				
				Cmunk 				= splitInterno[j++];
				Cmunk 				= Cmunk.replace(" ", "");				
				
				Cprancha 			= splitInterno[j++];
				Cprancha 			= Cprancha.replace(" ", "");				
				
				Csider 				= splitInterno[j++];
				Csider 				= Csider.replace(" ", "");				
				
				Csilo 				= splitInterno[j++];
				Csilo 				= Csilo.replace(" ", "");				
				
				Ctanque 			= splitInterno[j++];
				Ctanque 			= Ctanque.replace(" ", "");				
				
				Cso_cavalo 			= splitInterno[j++];
				Cso_cavalo 			= Cso_cavalo.replace(" ", "");				
				
				Cmecanico 			= splitInterno[j++];
				Cmecanico 			= Cmecanico.replace(" ", "");				
				
				Vrodotrem 			= splitInterno[j++];
				Vrodotrem 			= Vrodotrem.replace(" ", "");				
				
				Vbitrem 			= splitInterno[j++];
				Vbitrem 			=Vbitrem.replace(" ", "");				
				
				Vcarreta_ls 		= splitInterno[j++];
				Vcarreta_ls 		= Vcarreta_ls.replace(" ", "");				
				
				Vbi_truck 			= splitInterno[j++];
				Vbi_truck 			= Vbi_truck.replace(" ", "");				
				
				Vtruck 				= splitInterno[j++];
				Vtruck 				= Vtruck.replace(" ", "");
				
				Vtoco 				= splitInterno[j++];
				Vtoco 				= Vtoco.replace(" ", "");
				
				Vtres_por_quatro 	= splitInterno[j++];
				Vtres_por_quatro 	= Vtres_por_quatro.replace(" ", "");				
				
				Vvlc 				= splitInterno[j++];
				Vvlc 				= Vvlc.replace(" ", "");
				Vvlc				= Vvlc.replace(")", "");
				boolean[] carrocerias= {Cbau.equals			("1")?true:false, Cbau_frigorifico.equals	("1")?true:false, Cboiadeiro.equals	("1")?true:false,
										Ccacamba.equals		("1")?true:false, Ccontainer.equals			("1")?true:false, Cgaiola.equals	("1")?true:false,
										Cgrade_baixa.equals	("1")?true:false, Cgraneleiro.equals		("1")?true:false, Cmunk.equals		("1")?true:false,
										Cprancha.equals		("1")?true:false, Csider.equals				("1")?true:false, Csilo.equals		("1")?true:false,
										Ctanque.equals		("1")?true:false, Cso_cavalo.equals			("1")?true:false, Cmecanico.equals	("1")?true:false};
				
				boolean[] veiculos 	= {	Vrodotrem.equals		("1")?true:false, Vbitrem.equals("1")?true:false, Vcarreta_ls.equals("1")?true:false,
										Vbi_truck.equals		("1")?true:false, Vtruck.equals	("1")?true:false, Vtoco.equals		("1")?true:false,
										Vtres_por_quatro.equals	("1")?true:false, Vvlc.equals	("1")?true:false};
				
				Endereco enderecoOrigem = new Endereco(estadoOrigem, cidadeOrigem, completoOrigem);
				Endereco enderecoDestino = new Endereco(estadoDestino, cidadeDestino, completoDestino);
				Produto produto = new Produto(nomeproduto, Float.parseFloat(pesoproduto), especieproduto, descricaoproduto);
				Produtor produtor = new Produtor(nomeProdutor, telefoneProdutor, Integer.parseInt(idProdutor));
				Frete frete = new Frete(Integer.parseInt(idFrete), produtor, enderecoOrigem, enderecoDestino, produto, veiculos, carrocerias, Float.parseFloat(preco), status, descricao);
				fretes.add(frete);
			}
			return "OK";
		} catch (Exception e) {
			return e.toString();
		}		
	}

	@Override
	protected void onPostExecute(String result) {
		super.onPostExecute(result);
		progress.dismiss();
		if(result.equals("OK")){
			Fragment_Meus_Fretes fragment = new Fragment_Meus_Fretes();
			context.getSupportFragmentManager().beginTransaction().replace(R.id.menu_principal_llFragment, fragment).commit();
		}else{
			Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
		}
	}
	
	@Override
	protected void onPreExecute() {
		// TODO Auto-generated method stub
		super.onPreExecute();
		progress = ProgressDialog.show(context, "Meus Fretes", "Buscando fretes, aguarde...");
	}
}
